/**
 * 公共函数
 */
define(["jquery"], function($) {

	'use strict';	
	

	
	
	//医院名称
	var hospital_name,
	
	
	//通用配置
	common_config,
	
	//标题配置
	title_config,
	
	//合并前缀标题
	pre_title,
	
	//页脚名称
	foot_title
	
	
	
	
	
	var public_method = {
		
		/**
		 * 获取页面对象的宽度
		 * @param doc 页面dom对象
		 * @param elId 页面内元素id
		 */
		getPageWidth:function(doc,elId){
			var pageWidth;
			if((doc!=null)&&(elId!=null)){
				var pageEl = $(doc).find('#'+elId);
				pageWidth = $(pageEl).width();
			}
			return pageWidth;
		},
		/**
		 * 获取页面对象的宽度
		 * @param doc 页面dom对象
		 * @param elId 页面内元素id
		 */
		getPageHeight:function(doc,elId){
			var pageHeight;
			if((doc!=null)&&(elId!=null)){
				var pageEl = $(doc).find('#'+elId);
				pageHeight = $(pageEl).height();
			}
			return pageHeight;
		},
		getHostpital:function(){
			var _url = '/portal/getHostpitalName'			
	        
			if(hospital_name){
				return hospital_name;
			}else{
	        	var retVal
		        $.ajax({
		        	url:_url,
		        	type:'post',
		        	async:false,
		        	success:function(data){
		        		if(data && data.msg){	        			
		        			hospital_name = data.msg
		        		}
		        	}
		        })
		        return hospital_name
			}
		},
		
		/**
		 * @param _options.yearMonth
		 * @param _options.year
		 * @param _options.month
		 */
		getMonthLastDay:function(_options){
			var _url = '/portal/getMonthLastDay'	
			
			var param
			if(_options && _options.yearMonth){
				param = {yearMonth:_options.yearMonth}
			}else{
				param = {
					year : _options.year,
					month: _options.month
				}
			}
			
			var retVal
	        $.ajax({
	        	url		: _url,
	        	type	: 'post',
	        	data	: param,
	        	async	: false,
	        	success	: function(data){
	        		retVal = data;
	        	}
	        })
	        
	        return retVal;
			
		},
		/**
		 * @param _options.configName	配置项名称
		 */
		getCommonConfig:function(_options){
			if(!common_config){
				var _data = {configName:'common_config'},retVal
				retVal = private_method.getConfig(_data)
				if(retVal){
					common_config = $.parseJSON(retVal);
				}
			}
			
			if(common_config && _options.configName){
				return common_config[_options.configName];
			}else{
				return common_config
			}
		}
		
		,
		
		/**
		 * @param _options.configName
		 */
		getTitleConfig:function(_options){
			
			if(!title_config){
				var _data = {configName:'title_config'},retVal
				retVal = private_method.getConfig(_data)
				if(retVal){
					title_config = $.parseJSON(retVal)
				}				
			}
			
			if(title_config){
				if(_options &&_options.configName && title_config[_options.configName]){
					return title_config[_options.configName]
				}
			}
			return title_config
			
		},
		
		/**
		 * 获取合并的前置标题
		 */
		getFootTitle:function(){
			if(!foot_title){
				var titleJson = public_method.getTitleConfig();
				if(titleJson && titleJson.pre_title){
					var titleNames = titleJson.foot_title
					if(titleNames && titleNames.length){
						for(var i=0;i<titleNames.length;i++){
							var _name = titleNames[i].name;
							foot_title = foot_title==null?_name:foot_title +' ' + _name;
						}
					}
				}
			}
			
			return foot_title
		}
		,
		getPreTitle:function(){
			if(!pre_title){
				var titleJson = public_method.getTitleConfig();
				if(titleJson && titleJson.pre_title){
					pre_title = titleJson.pre_title					
				}
			}			
			return pre_title
		}
		,
		
		getConfig:function(_options){
			if(!common_config){
				var _data = {configName:_options.configName},retVal
				retVal = private_method.getConfig(_data)
				return retVal;
			}			
		}
		
	}
	
	var private_method = {
		
		/**
		 * @param _data.configName	配置名称
		 */
		getConfig:function(_data){
			var _url = '/portal/getConfig',retVal			
	        	
	        $.ajax({
	        	url:_url,
	        	type:'post',
	        	data:_data,
	        	async:false,
	        	success:function(data){
	        		if(data && data.msg){	        			
	        			retVal = data.msg
	        		}
	        	}
	        })
	        return retVal			
		}
	}
	
	return public_method
});
